home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CICA Windows Explosion!
/
The CICA Windows Explosion! - Disc 2.iso
/
programr
/
upc12bs1.zip
/
UUCP
/
uuname.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-08
|
7KB
|
207 lines
/*--------------------------------------------------------------------*/
/* u u n a m e . c */
/* */
/* Known site lister for UUPC/extended */
/* */
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
/* System include files */
/*--------------------------------------------------------------------*/
#include <stdio.h>
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <time.h>
#include <fcntl.h>
#include <stdlib.h>
/*--------------------------------------------------------------------*/
/* Local include files */
/*--------------------------------------------------------------------*/
#include "lib.h"
#include "getopt.h"
#include "hlib.h"
#include "hostable.h"
#include "security.h"
#include "timestmp.h"
currentfile();
/*--------------------------------------------------------------------*/
/* Verb list */
/*--------------------------------------------------------------------*/
typedef enum {
LIST_DEFAULT = 1,
LIST_LOCAL,
LIST_DOMAIN
} COMMAND_CLASS;
/*--------------------------------------------------------------------*/
/* Internal prototypes */
/*--------------------------------------------------------------------*/
static void all( void );
static void local( void );
static void domain( void );
static void usage( void );
/*--------------------------------------------------------------------*/
/* m a i n */
/* */
/* main program */
/*--------------------------------------------------------------------*/
void main(int argc, char **argv)
{
int c;
COMMAND_CLASS command = LIST_DEFAULT;
extern char *optarg;
extern int optind;
/*--------------------------------------------------------------------*/
/* Report our version number and date/time compiled */
/*--------------------------------------------------------------------*/
debuglevel = 0;
banner( argv );
#if defined(__CORE__)
copywrong = strdup(copyright);
checkref(copywrong);
#endif
/*--------------------------------------------------------------------*/
/* Process our arguments */
/*--------------------------------------------------------------------*/
while ((c = getopt(argc, argv, "dlx:")) != EOF)
switch(c) {
case 'x':
debuglevel = atoi( optarg );
break;
case 'd':
command = LIST_DOMAIN;
break;
case 'l':
command = LIST_LOCAL;
break;
case '?':
usage();
}
if (optind != argc) {
puts("Extra parameter(s) at end.");
exit(2);
}
if (!configure( B_UUSTAT ))
exit(1); /* system configuration failed */
/*--------------------------------------------------------------------*/
/* Execute the requested command */
/*--------------------------------------------------------------------*/
switch ( command )
{
case LIST_DEFAULT:
all( );
break;
case LIST_LOCAL:
local( );
break;
case LIST_DOMAIN:
domain( );
break;
default:
panic();
} /* switch */
exit(0);
} /* main */
/*--------------------------------------------------------------------*/
/* a l l */
/* */
/* Display all connected systems names */
/*--------------------------------------------------------------------*/
static void all( )
{
struct HostTable *hostp = nexthost( TRUE );
/*--------------------------------------------------------------------*/
/* Scan one or all host directories */
/*--------------------------------------------------------------------*/
while (hostp != BADHOST )
{
printf("%s\n", hostp->hostname);
/*--------------------------------------------------------------------*/
/* If processing all hosts, step to the next host in the queue */
/*--------------------------------------------------------------------*/
hostp = nexthost( FALSE );
} /* while */
} /* all */
/*--------------------------------------------------------------------*/
/* l o c a l */
/* */
/* Display local systems node name */
/*--------------------------------------------------------------------*/
static void local( )
{
printf("%s\n", E_nodename);
} /* local */
/*--------------------------------------------------------------------*/
/* d o m a i n */
/* */
/* Display local systems domain name */
/*--------------------------------------------------------------------*/
static void domain( )
{
printf("%s\n", E_domain);
} /* domain */
/*--------------------------------------------------------------------*/
/* u s a g e */
/* */
/* Report how to use program */
/*--------------------------------------------------------------------*/
static void usage( void )
{
fputs("Usage:\tuuname\t[-l|-d]\n\
\tDefault is to display all known uucp systems.\n\
\t-d\t\tDisplays local node's domain name.\n\
\t-l\t\tDisplays local node's uucp name.\n",
stdout );
exit(1);
} /* usage */